package com.zp.self.springboot.自动装配.Conditional注解;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*;

@Configuration
@Conditional(MyCondition.class)//依赖于这里返回的true,false;是否导入这个类下的bean
//除此之外还有一下几个;
//@ConditionalOnBean：当SpringIoc容器内存在指定Bean的条件
//@ConditionalOnClass：当SpringIoc容器内存在指定Class的条件
//@ConditionalOnMissingBean：当SpringIoc容器内不存在指定Bean的条件
//@ConditionalOnMissingClass：当SpringIoc容器内不存在指定Class的条件
//@ConditionalOnProperty：指定的属性是否有指定的值
//@ConditionalOnResource：类路径是否有指定的值
//@ConditionalOnSingleCandidate：当指定Bean在SpringIoc容器内只有一个，或者虽然
//
//@ConditionalOnExpression：基于SpEL表达式作为判断条件
//@ConditionalOnJava：基于JVM版本作为判断条件
//@ConditionalOnJndi：在JNDI存在时查找指定的位置
//@ConditionalOnNotWebApplication：当前项目不是Web项目的条件
public class MyAutoConfig_3 {

    @Bean

    public Person_3 Person_3() {
        return new Person_3();
    }
    //测试
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(MyAutoConfig_3.class);
        Person_3 conditionBean = context.getBean(Person_3.class);
        conditionBean.sayHi();
    }
}